package lk.mrt.cse.wihidum.communicator;

import org.apache.axiom.soap.*;
import lk.mrt.cse.wihidum.storage.*;
import lk.mrt.cse.wihidum.processor.PublicationMessage;

import java.util.*;

public interface Router
{
    public void propagateSubscription(SOAPEnvelope message, String filter, String action);

    public void propagatePublication(PublicationMessage message);

    public SOAPEnvelope createPublicationRequest(PublicationMessage publicationMessage, NeighbourBroker superUnit, String SOAPURI);

    public ArrayList<NeighbourBroker> getSuperUnits();

    public ArrayList<NeighbourBroker> getPeerUnits();

    public ArrayList<NeighbourBroker> getSubUnits();

    public SOAPEnvelope createResponse();
}
